package com.chengliang.bbs.service;

import com.chengliang.bbs.entry.User;
import com.chengliang.bbs.entry.UserAuths;
import com.chengliang.bbs.type.UserIdentityType;

/**
 * @author chengliang
 * user接口
 */
public interface UserService {


    /**
     * 通过用户Id获取用户信息
     * @param userId 用户Id
     * @return 用户对象
     */
    User getUserByUserId(Integer userId);

    /**
     * qq是否是绑定的
     * @param userId
     * @return
     */
    boolean isQQBind(Integer userId);

    /**
     * 根据昵称修改密码
     * @param nickName 昵称
     * @param password 新密码
     * @return
     */
    boolean updatePasswordByNickName(String nickName,String password);

    /**
     * 通过登录名（邮箱或手机号）查询获取昵称
     * @param loginName
     * @return
     */
    String getNickNameByLoginName(String loginName);

    /**
     * 用户注册
     * @param userAuths
     * @return
     */
    boolean register(User user, UserAuths userAuths);


    /**
     * 昵称是否存在
     * @param nickName 昵称
     * @return
     */
    boolean isExistsUserNickName(String nickName);

    /**
     * 验证登录名是否存在
     * @param loginName 登录名： 邮箱或手机号等
     * @return
     */
    boolean isExistsUserLoginName(String loginName);

    /**
     * 根据Id修改用户信息信息
     * @param user 用户信息： id,邮箱，性别，签名，地址
     * @return
     */
    boolean updateUserInfoByUserId(User user);

    /**
     * 解除绑定账号
     * @param userId
     * @param identityType
     * @return
     */
    boolean unbind(Integer userId, UserIdentityType identityType);

    /**
     * 根据昵称获取用户信息
     * @param userNickName
     * @return
     */
    User getUserByNickName(String userNickName);
}
